import React from 'react'

import { Routes, Route, Outlet } from 'react-router-dom'

// 登录验证
import AuthRouter from './auth'

// 引入首页
import Home from '@/components/Home'

// 引入每个目录下面的index.js文件
const ModulesFile = require.context('./', true, /index.js$/)

// 总路由集合
const RouterMap = []

//对引入的文件进行循环
ModulesFile.keys().reduce((modules, modulePath) => {

    // 路由模块名称   文件夹/index  user/index
    const ModuleName = modulePath.replace(/^.\/(.*)\.js/, '$1')

    //不包含当前index.js 文件
    if (ModuleName !== 'index') {
        //路由列表
        const ModuleList = ModulesFile(modulePath)

        //追加到数组
        RouterMap.push(...ModuleList.default)
    }

    return RouterMap
}, {})

const RouterList = () => 
{
    return (
        <>
            <Routes>
                {/* 默认首页 */}
                <Route path='/' element={<Home />}></Route>

                {/* 一级路由 */}
                <Route path='/' element={<Outlet />}>
                    {RouterMap.map((item,index) => {
                        return (
                            /* 
                                二级路由
                                /user
                            */
                            <Route key={index} path={item.path} element={<item.component />}>
                                {/* 三级路由 /base/index */}
                                {item.children && item.children.map((son,idx) => {
                                    return (
                                        <Route key={idx} path={son.path} element={<AuthRouter auth={son.auth} component={<son.component />} />}></Route>
                                    )
                                })}
                            </Route>
                        )
                    })}
                </Route>
            </Routes>
        </>
    )
}

export default RouterList